//
//  CZStutsModel.swift
//  微博
//
//  Created by 霸气的刘吉庆 on 16/4/20.
//  Copyright © 2016年 ios. All rights reserved.
//

import UIKit

class CZStutsModel: NSObject {
    
    //如果在这里使用Int的话,在ipHone 5(32位系统)的手机上面,会将int当成32来使用
    //而Int32位的最大值是没有微博的Id大的,所以会造成溢出
    //示例
    /*
    
    
    // 9223372036854775807  64位最大数
    // 3966993780778819 微博id
    // 2147483647 32位的最大数
    print(INT64_MAX)
    
    
    */
    
    var id: Int64 = 0
    
    
    //定义属性,进行提供创建方法
    //当前微博的内容
    var text: String?
    
    //微博创建的时间
    var created_at: String?
    //来源
    var source: String?
    
    //注意这里讲user进行模型的转换,当前用户的信息
    var user: CZUserModel?
    
    var pic_urls: [CZPictureModel]?{
        //测试代码
        didSet{
            //如果pic_urls里面的数量大于4,就截取前面4个
//            
//            if let urls = pic_urls where urls.count >= 4{
//                pic_urls = (urls as NSArray).subarrayWithRange(NSMakeRange(0, 4)) as? [CZPictureModel]
//            }
//            
//            
            
        }
        
        
        
    }
    
    //还有好多属性呢,怎么这里都没有了,干
    
    //当前微博转发微博,因为其内部字段与CZStutsModel一样,所以就将其设置为CZStutsModel,
    
    var retweeted_status: CZStutsModel?
    
    
    
    init(dict: [String: AnyObject]) {
        
        super.init()

        setValuesForKeysWithDictionary(dict)
    }
    
    
    //使用setValue的方法
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user"{
         
            guard let dict = value as? [String: AnyObject] else{
                return
            }
            //这里直接赋值就可以了
            user = CZUserModel(dict: dict)
            
            
        }else if key == "retweeted_status"{
            
            //进行转模型,首先判断他是不是一个字典
            guard let dict = value as? [String: AnyObject] else{
                return
            }
            
            retweeted_status = CZStutsModel(dict: dict)
            
            
        }else if key == "pic_urls"{
            
            
            guard let dict = value as? [[String: AnyObject]] else {
                return
            }
            
            //遍历数组进行转模型
            var tempArray: [CZPictureModel] = [CZPictureModel]()
            
            for dic in dict{
                
                let model = CZPictureModel(dict: dic)
                
                tempArray.append(model)
                
                
            }
            
            pic_urls = tempArray
            
            
            
        }
        
        
        else{
            super.setValue(value, forKey: key)
        }
        
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
        
        
        
    }
    
    
    
    
    

}
